Proxy
✒️ 2026-08-06 13:29 내용 수정
네트워크에서 클라이언트와 서버 사이에 중개 역할을 하는 서버나 소프트웨어
- 위키백과 Proxy
- 클라이언트의 자원 요청을 받아 실제 서버에 전달하고, 서버로부터 받은 응답을 클라이언트에 전송하는 역할을 한다.
- 클라이언트와 서버가 직접적인 통신이 아닌 간접적인 통신을 하게 해주는 대리자(중간에 동작) 역할의 서버 애플리케이션이다.
특징
- Proxy 서버가 클라이언트로부터 요청을 받으면 요청을 평가하고 필요한 네트워크 트랜잭션을 수행한다.
- 요청의 복잡성을 단순화, 요청 제어, 부하 분산, 정보보호 같은 이점을 제공한다.
- PROXY 서버는 클라이언트의 IP를 숨길 수 있어 클라이언트의 정보를 보호할 수 있고, 서버에 직접적으로 접근하지 않기에 서버를 보호할 수 있다.
- 자주 요청되는 리소스를 캐싱해서 서버에 불필요한 요청을 보내지 않고 네트워크 리소스를 줄일 수 있다.
- 특정 웹 사이트나 서비스에 대한 접근을 제어할 수 있다.
종류
- 위치
- 사용자의 로컬 컴퓨터나 사용자의 컴퓨터와 인터넷 상의 목적지 서버 사이의 어떤 지점에 있을 수 있다.
- 수정되지 않은 요청과 응답을 전달하는 Proxy 서버를 게이트웨이 또는 터널링 Proxy라고 부르기도 한다.
- 포워드 Proxy : 광범위한 소스에서 데이터를 검색할 때 사용하는 인터넷 향 Proxy다.
- 리버스 Proxy : 사설 네트워크의 서버에 대한 접근을 제어하고 보호하기 위한 프론트엔드로 사용되는 내부향 Proxy다.
공개 Proxy
- 모든 인터넷 사용자가 접근할 수 있는 store and forward Proxy 서버다.
- 익명 Proxy : 이 서버는 자신의 신원을 Proxy 서버로 드러내지만, 클라이언트의 원래 IP 주소를 공개하지 않는다.
- 투명 Proxy : 이 서버는 자신을 Proxy 서버로 식별하며,
X-Forwarded-For와 같은 HTTP Header 필드 목록도 지원하여 원래 IP 주소도 검색할 수 있다.
리버스 Proxy 또는 Surrogate Server
- 클라이언트에게 일반 서버처럼 보이나, 원본 서버의 응답이 마치 Proxy 서버에서 온 것처럼 반환되는 것처럼 보이는 서버다.
- 클라이언트는 원본 서버를 알지 못한다.
- 웹 서버 근처에 설치되며, 인근 웹 서버 중 하나를 근처로 하는 인터넷 트래픽은 Proxy 서버를 통과한다.
- 암호화, 부하분산, 데이터 압축(컨텐츠 최적화 및 압축), 스푼 피딩(캐싱을 통해 클라이언트에게 천천히 소스를 전달), 보안 등의 목적을 위해 사용한다.
용도
- 모니터링 및 필터링으로 양방향에 전달될 수 있는 컨텐츠에 대한 관리 제어를 제공한다.
- 보안 목적의 암호화된 데이터 필터링을 위해서도 사용한다.(SSL)
- 웹과 클라이언트 간의 데이터 흐름을 감청하기 위해서도 사용한다.
- 자주 요청되는 리소스를 캐싱하여 요청 처리 시간을 단축할 때 사용한다.
- 동일-출처 정책(CORS)으로 인한 웹 사이트의 외부 도메인 연결이 금지되었을 때 웹 사이트가 외부 호스팅 리소스를 허용할 수 있도록 사용할 수 있다.